package Map.Map03;

import java.util.HashMap;
import java.util.LinkedHashMap;

/*
 *   java.util.LinkedHashMap<K,V> extends HashMap<K,V>
 * Map接口的 哈希表和链表实现，具有可知的迭代顺序
 *   底层原理：
 *      哈希表+链表（记录元素的顺序）
 *
 * */
public class LinkedHashMap01 {
    public static void main(String[] args) {
        HashMap<Integer, Integer> map = new HashMap<>();
        map.put(1, 2);
        map.put(3, 6);
        map.put(2, 4);
        map.put(2, 8);
        //{1=2, 2=8, 3=6}可见HashMap的迭代顺序不一定，且不允许重复
        System.out.println(map);

        LinkedHashMap<Integer, Integer> linkedHashMap = new LinkedHashMap<>();
        linkedHashMap.put(1, 2);
        linkedHashMap.put(3, 6);
        linkedHashMap.put(2, 4);
        linkedHashMap.put(2, 8);
        //{1=2, 3=6, 2=8}，可见LinkedHashMap是一个有序的集合，同时也不允许重复
        System.out.println(linkedHashMap);

    }
}
